import logging

def setup_logging(log_file: str = 'chat_log.log'):
    """
    Setup logging to a specified log file.
    """
    # 设置日志格式和日期格式
    LOG_FORMAT = '[%(asctime)s] %(levelname)s: %(message)s'
    DATE_FORMAT = "%Y-%m-%d %H:%M:%S"

    # 创建一个 logger 对象
    logger = logging.getLogger("my_logger")
    logger.setLevel(logging.DEBUG)  # 设置全局日志级别

    # 创建一个用于写入文件的 handler
    file_handler = logging.FileHandler(log_file, encoding="utf-8", mode="w")
    file_handler.setFormatter(logging.Formatter(LOG_FORMAT, datefmt=DATE_FORMAT))
    file_handler.setLevel(logging.INFO)  # 文件只记录 INFO 及以上级别的日志
    
    # 创建一个用于输出到控制台的 handler
    console_handler = logging.StreamHandler()
    console_handler.setFormatter(logging.Formatter(LOG_FORMAT, datefmt=DATE_FORMAT))
    console_handler.setLevel(logging.DEBUG)  # 控制台显示 DEBUG 及以上级别的日志

    # 将两个 handler 添加到 logger 中
    logger.addHandler(file_handler)
    logger.addHandler(console_handler)